﻿$(function () {

     $("#<% = RadGrid1.ClientID %> table").tablesorter();

})

$(function ()
{
        cargarCuerpo();        
//        cargarCategoriaLabor();        
//        cargarTipoLabor();
//        cargarZona();
fn_cargarZona();
});

///inicializador del jquery
$(function () {

     $("#RegistroModal").dialog({
        autoOpen: false,
        buttons:
                {
                    "Aceptar": InsertarCallBack
                 ,

                    "Cancelar": function () {
                        $("#RegistroModal").dialog("close");
                        return false;
                    }
                }
             ,
        height: 520,
        width: 500,
        modal: true,
        show: {
            effect: "highlight",
            duration: 1000
        },
        hide: {
            effect: "highlight",
            duration: 1000
        }

    });

    $("#btnNuevo").click(function () {
        //GeneraID();
//        cargarCuerpo();        
//        cargarCategoriaLabor();        
//        cargarTipoLabor();
//        cargarZona();
//        alert("1");
        $("#txtNombre").val("");
        $("#RegistroModal").dialog("open");
        return false;
    });

    $("#btnModificar").click(function () {

        $('#RegistroModal').dialog({ title: "Modificar Tipo de Documento" });
        var codigosSel = getIDSelChk();

        if (codigosSel.length > 0) {

            if (codigosSel.length == 1) {
                ObtienePorId(codigosSel[0].Codigo);
                $("#RegistroModal").dialog("open");
            } else {
                alert("Para modificar seleccione sólo un elemento de la lista.");
            }


        } else {
            alert("Seleccione elemento a modificar.");
        }

        return false;
    });

    $('#txtCodigoSearch').keypress(function (e) {
        if (e.which == 13) {
            var almacen = {
                CodigoAlmacen: $("#txtCodigoSearch").val(),
                Descripcion: $(this).val(),
            };
            var args = JSON.stringify(almacen);

            listaAlmacen(args, function (output, context) {
                var result = (JSON.parse(output));
                CargarDatos(result);
            });
        }
    });

    $('#btnBuscar').click(function () {
        Listar();
        return false;
    });

   $('#btnCancelar').click(function () {
        $("#grid").jqGrid("clearGridData", true);
        $("#txtCodigoSearch").val("");
        $("#txtDescripcionSearch").val("");
        Listar();
        return false;

    });

    $('#btnEliminar').click(function () {
        Eliminar();
        return false;
    });
});



/////BEGIN definicion de variables globales JS
var colMode = [
                    { name: 'Codigo', index: 'Codigo', width: 100, sorttype: "int" },
                    { name: 'CodigoEmpresa', index: 'CodigoEmpresa', width: 100, sorttype: "int" },
                    { name: 'DescripcionLarga', index: 'DescripcionLarga', width: 100, sorttype: "string" },
                    { name: 'DescripcionCorta', index: 'DescripcionCorta', width: 100, sorttype: "string" },
                    { name: 'Serie', index: 'Serie', width: 100, sorttype: "string" }
];

/////END  definicion de variables globales JS

jQuery.extend(jQuery.jgrid.edit, {
    ajaxEditOptions: { contentType: "application/json" },
    recreateForm: true,
    serializeEditData: function (postData) {
        return JSON.stringify(postData);
    }
});

jQuery.extend(jQuery.jgrid.del, {
    ajaxDelOptions: { contentType: "application/json" },
    serializeDelData: function (postData) {
        return JSON.stringify(postData);
    }
});

var CargarDatos = function (datos) {
    if (datos.result == "OK") {
        LoadData(datos.data);
    } else {
        alert("Ocurrio un error : " + datos.message);
        return false;
    }
}

var LoadData = function (datos) {
    $("#grid").jqGrid("clearGridData", true);
    jQuery("#grid").jqGrid({
        datatype: "local",
        jsonReader: //Set the jsonReader to the JQGridJSonResponse squema to bind the data.
           {
               root: "Items",
               page: "CurrentPage",
               total: "PageCount",
               records: "RecordCount",
               repeatitems: true,
               cell: "Row",
               id: "Codigo"//index of the column with the PK in it   
           },
        colNames: ['Codigo', 'CodigoEmpresa', 'DescripcionLarga', 'DescripcionCorta', 'Serie'],
        colModel: colMode,
        multiselect: true,
        pager: "#pager", //Pager.
        loadtext: 'Cargando datos...',
        recordtext: "{0} - {1} de {2} elementos",
        emptyrecords: 'No hay resultados',
        pgtext: 'Pág: {0} de {1}', //Paging input control text format.
        rowNum: "10", // PageSize.
        rowList: [10, 20, 30], //Variable PageSize DropDownList.
        viewrecords: true, //Show the RecordCount in the pager.
        sortname: "Codigo", //Default SortColumn
        sortorder: "asc", //Default SortOrder.
        width: "1200",
        height: "230",
        caption: "Tipo de Documento"

    }).navGrid("#pager", {
        edit: false,
        add: false,
        search: false,
        del: false
    });

    var mydata = datos;
    for (var i = 0; i <= mydata.length; i++) {
        jQuery("#grid").jqGrid('addRowData', i + 1, mydata[i]);
    }

}

var InsertarCallBack = function () {

    var TipoDocumento =
      {
          CodigoAlmacen: 1,
          DescripcionCorta: $("#txtDesLarga").val(),
          DescripcionLarga: $("#txtDesCorta").val(),
          Serie: $("#txtSerie").val(),
          Numerador: $("#txtNumerador").val()
      };

    var args = JSON.stringify(TipoDocumento);

    InsertarCallBack(args, function (output, context) {

        var resultado = JSON.parse(output);
        if (resultado.result == "OK") {
            alert("Registrado correctamente:   " + $("#txtDescripcion").val());
            $("#RegistroModal").dialog("close");
            CargarDatos(resultado);
        } else {
            alert("ocurrió un error> " + resultado.message);
        }
    });
}

function cargarCuerpo(){
//alert("Llenar");
    var ListItemInt = { Value: "0" };
    var args = JSON.stringify(ListItemInt);
//    alert("Llenar");

    CargarCuerpoCallBack(args, function (output, context) {
        var resultado = JSON.parse(output);
        if (resultado.result == "OK") {
            //$('#txtCodigo').val(resultado.message);
//            LoadCombo($("#cboCuerpo"), resultado.data)

            
//                $("#cboCuerpo").empty();
            //    alert('mensaje');
                data = resultado.data;
            //    var objJSON = $.parseJSON(data);
            
                $("#cboCuerpo").append('<option value="-"> -Seleccionar- </option>');
                                     $.each(data, function (key, val) {
                         $("#cboCuerpo").append('<option value=' + val["Value"] + '>' + val["Text"] + '</option>');
                     });

//             $(data).each(function () {
//                                    var option = $(document.createElement('option'));

//                                    option.text(this.Text);
//                                    option.val(this.Value);
//                                    $("#cboCuerpo").append(option);
//                                });

        } else {
            alert("ocurrió un error al generar el ID: " + resultado.message);
        }
    });
    return true;
}

function cargarCategoriaLabor(){
//    alert("Llenar");
    var ListItemInt = { Value: "0" };
    var args = JSON.stringify(ListItemInt);
    CargarCategoriaLaborCallBack(args, function (output, context) {
        var resultado = JSON.parse(output);
        if (resultado.result == "OK") {
            //$('#txtCodigo').val(resultado.message);
            LoadCombo($("#cboCategoria"), resultado.data)
        } else {
            alert("ocurrió un error al generar el ID: " + resultado.message);
        }
    });
    return true;
}

function cargarTipoLabor(){
//    alert("Llenar");
    var ListItemInt = { Value: "0" };
    var args = JSON.stringify(ListItemInt);
    CargarTipoLaborCallBack(args, function (output, context) {
        var resultado = JSON.parse(output);
        if (resultado.result == "OK") {
            //$('#txtCodigo').val(resultado.message);
            LoadCombo($("#cboTipo"), resultado.data)
        } else {
            alert("ocurrió un error al generar el ID: " + resultado.message);
        }
    });
    return true;
}

function cargarZona(){
//    alert("Llenar");
    var ListItemInt = { Value: "0" };
    var args = JSON.stringify(ListItemInt);
    CargarZonaCallBack(args, function (output, context) {
        var resultado = JSON.parse(output);
        if (resultado.result == "OK") {
            //$('#txtCodigo').val(resultado.message);
            LoadCombo($("#cboZona"), resultado.data)
        } else {
            alert("ocurrió un error al generar el ID: " + resultado.message);
        }
    });
    return true;
}

var GeneraID = function () {
    var TipoDocumento = { CodigoAlmacen: 0 };
    var args = JSON.stringify(TipoDocumento);
    GeneraIdCallback(args, function (output, context) {
        var resultado = JSON.parse(output);
        if (resultado.result == "OK") {
            $('#txtCodigo').val(resultado.message);
        } else {
            alert("ocurrió un error al generar el ID: " + resultado.message);
        }
    });

    return false;

}

var Eliminar = function () {

    if (confirm("Esta Seguro de Eliminar?")) {

        var codigosSel = getIDSelChk();

        if (codigosSel.length > 0) {

            $.each(codigosSel, function (idx, tipoDocumento) {
                var arg = tipoDocumento.Codigo;
                EliminarAlmacen(arg, function (output, context) {
                    var result = (JSON.parse(output));
                });
            });
            Listar();
        } else {
            alert("Seleccione elemento para eliminar.");
        }
    }
};

var Listar = function () {

    var almacen = {
        Codigo: $("#txtCodigoSearch").val(),
        DescripcionLarga: $("#txtDescripcionSearch").val(),
    };
    var args = JSON.stringify(almacen);
    listaTipoDocumentoCallBack(args, function (output, context) {
        var result = (JSON.parse(output));
        CargarDatos(result);
    });

};

var ObtienePorId = function (id) {
    var tipoDocumento = {
        Codigo: id
    };
    var args = JSON.stringify(tipoDocumento);

    ObtienePorIdCallBack(args, function (output, context) {
        var result = (JSON.parse(output));
        if (result.result == "OK") {

            var objTipoDocumento = result.data;
            if (!($.isEmptyObject(objTipoDocumento))) {

                $("#txtCodigo").val(objTipoDocumento.Codigo);
                $("#txtDesLarga").val(objTipoDocumento.DescripcionLarga);
                $("#txtDesCorta").val(objTipoDocumento.DescripcionCorta);
                $("#txtSerie").val(objTipoDocumento.Serie);
                $("#txtNumerador").val(objTipoDocumento.Numerador);
                $("#chkInsumo").attr('checked', ((objTipoDocumento.MostrarInsumo == "S") ? true : false));
            }

        } else {
            alert(result.message);
        }

    });

};

var getIDSelChk = function () {
    var CodigoEliminar = 0;
    var Codigos = [];
    var c = 0;
    $("#grid tr td input[type='checkbox']").each(function (index, value) {
        if (value.checked) {
            var obj = $(this).parent().parent().get(0);
            $.each(obj, function (indice, valor) {
                if (indice == "cells") {
                    var cuenta = 0;
                    $.each(valor, function (indice2, valor2) {
                        $.each(valor2, function (indice3, valor3) {
                            if (indice3 == "title") {
                                if (cuenta == 1) {
                                    Codigos[c] = { Codigo: valor3 };
                                    c++;
                                }
                                cuenta++;
                            }
                        });
                    });
                }
            });
        }
    });
    return Codigos;
};


function LoadCombo(combo,datos){
    $(combo).empty();
//    alert('mensaje');
    data = datos;
//    var objJSON = $.parseJSON(data);

    $(combo).append('<option value="-"> -Seleccionar- </option>');
 $(datos).each(function () {
                        var option = $(document.createElement('option'));

                        option.text(this.Text);
                        option.val(this.Value);

                        $(combo).append(option);
                    });
                       
                   
//    $.each(objJSON, function (key, val) {
//        $("#cmbCuerpo").append('<option value=' + val["Value"] + '>' + val["Text"] + '</option>');
//    });
}


function fn_cargarZona() {
    $("#cboZona").empty();
    alert("entra");
    $.ajax({
        url: "/ws/WSZona.asmx/GetZonas",
        type: "POST",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        success:
                 function (resultado) {
                     data = resultado;
                     var objJSON = $.parseJSON(data["d"]);
                     $("#cboZona").append('<option value="-"> -Seleccionar- </option>');
                   
                     $.each(objJSON, function (key, val) {
                         $("#cboZona").append('<option value=' + val["Value"] + '>' + val["Text"] + '</option>');
                     });
                 }
    });
}